package com.zhentao.dataintegrity.domain.dto;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

public class ExecutionRecordDTO {

    private Long id;
    private Long taskId;
    private String executionId;
    private String triggerType;
    private String executionStatus;
    private LocalDateTime startTime;
    private LocalDateTime endTime;
    private Integer durationSeconds;
    private LocalDate dataRangeStart;
    private LocalDate dataRangeEnd;
    private BigDecimal totalDiffRmb;
    private BigDecimal totalDiffUsd;
    private String errorMessage;
    private String executionDetails;
    private LocalDateTime createdTime;

    // 扩展字段
    private String taskTitle;
    private String triggerTypeText;
    private String executionStatusText;
    private String durationText;
    private String dataRangeText;
    private List<SubtaskDetailDTO> subtasks;

    // Getters and Setters
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public Long getTaskId() { return taskId; }
    public void setTaskId(Long taskId) { this.taskId = taskId; }

    public String getExecutionId() { return executionId; }
    public void setExecutionId(String executionId) { this.executionId = executionId; }

    public String getTriggerType() { return triggerType; }
    public void setTriggerType(String triggerType) { this.triggerType = triggerType; }

    public String getExecutionStatus() { return executionStatus; }
    public void setExecutionStatus(String executionStatus) { this.executionStatus = executionStatus; }

    public LocalDateTime getStartTime() { return startTime; }
    public void setStartTime(LocalDateTime startTime) { this.startTime = startTime; }

    public LocalDateTime getEndTime() { return endTime; }
    public void setEndTime(LocalDateTime endTime) { this.endTime = endTime; }

    public Integer getDurationSeconds() { return durationSeconds; }
    public void setDurationSeconds(Integer durationSeconds) { this.durationSeconds = durationSeconds; }

    public LocalDate getDataRangeStart() { return dataRangeStart; }
    public void setDataRangeStart(LocalDate dataRangeStart) { this.dataRangeStart = dataRangeStart; }

    public LocalDate getDataRangeEnd() { return dataRangeEnd; }
    public void setDataRangeEnd(LocalDate dataRangeEnd) { this.dataRangeEnd = dataRangeEnd; }

    public BigDecimal getTotalDiffRmb() { return totalDiffRmb; }
    public void setTotalDiffRmb(BigDecimal totalDiffRmb) { this.totalDiffRmb = totalDiffRmb; }

    public BigDecimal getTotalDiffUsd() { return totalDiffUsd; }
    public void setTotalDiffUsd(BigDecimal totalDiffUsd) { this.totalDiffUsd = totalDiffUsd; }

    public String getErrorMessage() { return errorMessage; }
    public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; }

    public String getExecutionDetails() { return executionDetails; }
    public void setExecutionDetails(String executionDetails) { this.executionDetails = executionDetails; }

    public LocalDateTime getCreatedTime() { return createdTime; }
    public void setCreatedTime(LocalDateTime createdTime) { this.createdTime = createdTime; }

    public String getTaskTitle() { return taskTitle; }
    public void setTaskTitle(String taskTitle) { this.taskTitle = taskTitle; }

    public String getTriggerTypeText() { return triggerTypeText; }
    public void setTriggerTypeText(String triggerTypeText) { this.triggerTypeText = triggerTypeText; }

    public String getExecutionStatusText() { return executionStatusText; }
    public void setExecutionStatusText(String executionStatusText) { this.executionStatusText = executionStatusText; }

    public String getDurationText() { return durationText; }
    public void setDurationText(String durationText) { this.durationText = durationText; }

    public String getDataRangeText() { return dataRangeText; }
    public void setDataRangeText(String dataRangeText) { this.dataRangeText = dataRangeText; }

    public List<SubtaskDetailDTO> getSubtasks() { return subtasks; }
    public void setSubtasks(List<SubtaskDetailDTO> subtasks) { this.subtasks = subtasks; }
}
